package dominio.ativacao.especializacao;

import dominio.ativacao.FuncaoAtivacaoAbstrata;

/**
 * descrição:
 * 
 * A função limiar modela a característica "tudo-ou-nada" deste neurônio.
 * Nos neuônios construídos com essa função, a saída y será igual a 0, caso o valor de ativação u seja negativo e 
 * 1 nos casos em que o valor de ativação seja positivo.  
 * 
 */
public class FuncaoDegrau extends FuncaoAtivacaoAbstrata {
	
	/**
	 * 
	 */
	public FuncaoDegrau() {
		super();
	}
	
	/**
	 * 
	 * @param teta
	 */
	public FuncaoDegrau( double theta ) {
		super( theta );
	}
	
	/* (non-Javadoc)
	 * @see dominio.ativacao.FuncaoAtivacao#aplicarFuncaoAtivacao(double)
	 */
	public double aplicarFuncaoAtivacao( double entradaLiquida ) {
		//System.out.println( "" + entradaLiquida + " = " + ( entradaLiquida >= this.theta ? 1 : 0 ) );
		return ( entradaLiquida >= this.theta ? 1 : 0 );
	}

	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "degrau (theta = " + this.theta + ")";
	}

}
